/*
	2019-11-20
	封装uni-app请求
*/
import config from "../config.js";

function request(params, method) {
	let token = uni.getStorageSync("token") || '';
	return new Promise(function(resolve, reject) {
		// 根据具体业务需求更改必要参数
		if (!config.base_url) {
			console.log('config.js 中参数配置不全');
			reject('config.js 中参数配置不全');
			return
		}
		let url = params.url;
		// #ifdef H5
		url = config.base_url + params.url;
		// #endif
		// #ifdef APP-PLUS || MP-WEIXIN
		url = config.base_url + params.url;
		// #endif
		uni.request({
			url: url,
			data: params.data,
			method: method,
			header: {
				"token": token,
				"content-type": "application/json"
			},
			success(res) {
				// 成功回调
				console.log(res.data)
				if (res.statusCode == 200) {
					if (res.data.code == 401) {
						uni.clearStorage();
						uni.showModal({
							title: '温馨提示',
							content: '登陆已失效~',
							confirmText: "去登录",
							cancelText: "再逛会",
							success: function(res) {
								if (res.confirm) {
									uni.reLaunch({
										url: "/pages/mine/login"
									});
								}
							}
						});
						return Promise.resolve(res.data)
					} else {
						resolve(res.data);
					}
				} else if (res.statusCode == 401) {
					uni.removeStorageSync('token')
					uni.reLaunch({
						url: '/pages/login/index'
					});
					uni.showToast({
						title: '请登录后操作',
						icon: 'none'
					})
					return
				} else {
					uni.reLaunch({
						url: "/pages/login/index"
					});
					uni.showToast({
						title: '服务器更新，请稍后重试!',
						icon: 'none'
					})
				}
			},
			fail() {
				uni.reLaunch({
					url: "/pages/login/index"
				});
				uni.showToast({
					title: '抱歉，网络连接异常，请稍候重试~',
					icon: "none"
				})
				// 失败回调
			},
			complete() {
				// 无论成功或失败 只要请求完成的 回调
				// uni.hideToast();
			}
		})
	})
};
export default {
	async get(params) {
		return request(params, "GET");
	},
	async post(params) {
		return await request(params, "POST")
	},
}
